package org.ray.pattern.jobmanager.single;

import java.io.Serializable;

public interface JobInfo<T> extends Serializable
{
	public static enum JobState
	{
		STATE_RUNNING, STATE_CANCELLED, STATE_FINISHED
	}

	public T getKey();
	
	public JobState getState();
	
	public void setState(JobState state);
	
	public boolean isAlerted();
	
	public void setAlerted(boolean alerted);

	public long getStartTimestamp();
	
	public void setStartTimestamp(long timestamp);
	
	public void update(JobInfo<T> another);
	
	public JobInfo<T> copy();
}
